Java除了使用+號連接字串,還可以使用字面常數產生String物件。
package com.mycompany.testfour;
public class testFour {
public static void main(String[] args) {
String tire="這是一個輪胎。";
System.out.println(tire);
}
}
Java會產生一個String物件代表相同內容的字面常數字串,tire1與tire的內容一樣,都是指向同一個物件,所以tire==tire1會出現true,但tire2有建立一個物件,所以tire==tire2就會是false。
package com.mycompany.testfour;
public class testFour {
public static void main(String[] args) {
String tire="這是一個輪胎。";
String tire1="這是一個輪胎。";
String tire2= new String("這是一個輪胎。");
System.out.println((tire==tire1));
System.out.println((tire==tire2));
System.out.println((tire1==tire2));
}
}
Java語言對String類別提供許多有用的方法:
equals()
String類別中的equals()方法,可以比對字串的內容是否一致。
package com.mycompany.testfour;
public class testFour {
public static void main(String[] args) {
String tire="這是一個輪胎。";
String tire1="這是一個輪胎。";
String tire2= new String("這是一個輪胎。");
System.out.println(tire.equals(tire1));
System.out.println(tire.equals(tire2));
System.out.println(tire1.equals(tire2));
}
}
因為是比對字串內容,所以比對完的結果都是true。
自動轉型(Implicit Conversion)
使用連接運算(+號)時,如果有非String物件,Java會試著轉為String物件,會呼叫toString()轉換。
package com.mycompany.testfour;
class Car{
String myCar;
public Car(String s) {myCar=s;}
public String toString(){return myCar;}
}
public class testFour {
public static void main(String[] args) {
Car bus= new Car("公車");
System.out.println("這是一台"+bus);
}
}
charAt(整數)
括號中的數為索引碼,就像陣列,以0開始算字元。
package com.mycompany.testfour;
public class testFour {
public static void main(String[] args) {
String cat= "這是一隻很可愛的貓。";
System.out.println(cat.charAt(0));
System.out.println(cat.charAt(3));
System.out.println(cat.charAt(8));
}
}
compareTo(字串)
一字串與括號中的另一字串從索引碼0以標準萬國碼(Uni-code)逐字比較大小,括號中的字串比較大就回傳負數,完全相同回傳0,比較小回傳正數。
package com.mycompany.testfour;
public class testFour {
public static void main(String[] args) {
String cat= "a cute cat。";
String dog= "a cute dog";
System.out.println(cat.compareTo(dog));
}
}
除了這些,還有很多種方法。
Boolean endsWith(String)
傳回是否以指定的字串內容結尾。
Int length()
傳回字串長度。
int indexOf(int)
傳回字元在字串第一次出現的索引碼,沒有出現回傳-1。
參考資料:
最新java程式語言第六版